home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 84 / draw_btn.lst < prev    next >
File List  |  1987-08-16  |  3KB  |  119 lines

  1. Procedure Draw_text_in_box(Characters$,X_text,Y_text,Style,Char_color,Char_size,Hborder,Vborder,Thick,Inverse)
  2.   Local Offset,Width,Hieght,Fatness,Round,Seethru,Xhot_upper,Yhot_upper,Xhot_lower,Yhot_lower,Temp$
  3.   If X_text<0
  4.     Round=True
  5.   Else
  6.     Round=False
  7.   Endif
  8.   If Y_text<0
  9.     Seethru=True
  10.   Else
  11.     Seethru=False
  12.   Endif
  13.   X_text=Abs(X_text)
  14.   Y_text=Abs(Y_text)
  15.   If Xbios(4)=1 And Char_size=1
  16.     Char_size=6
  17.   Else
  18.     If Xbios(4)=2 And Char_size=1
  19.       Char_size=13
  20.     Endif
  21.   Endif
  22.   If Char_size=32
  23.     Hieght=32
  24.     Width=16
  25.     Offset=4
  26.   Else
  27.     If Char_size=13
  28.       Hieght=16
  29.       Width=8
  30.       Offset=3
  31.     Else
  32.       If Char_size=6
  33.         Hieght=8
  34.         Width=8
  35.         Offset=1
  36.       Else
  37.         If Char_size=4
  38.           Hieght=7
  39.           Width=6
  40.           Offset=2
  41.         Endif
  42.       Endif
  43.     Endif
  44.   Endif
  45.   '
  46.   If Xbios(4)=2
  47.     Strip=(0)
  48.   Else
  49.     Strip=(-8)
  50.   Endif
  51.   Xhot_upper=X_text-Hborder-Thick+1
  52.   Yhot_upper=Y_text+Offset-Hieght-Vborder-Thick+20+Strip
  53.   Xhot_lower=X_text+Len(Characters$)*Width+Hborder+Thick-1
  54.   Yhot_lower=Y_text+Offset+Vborder+Thick+18+Strip
  55.   '
  56.   '
  57.   Deftext Char_color,Style,0,Char_size
  58.   Graphmode 1
  59.   '
  60.   If Thick>0
  61.     If Inverse
  62.       Deffill Char_color,1,
  63.     Else
  64.       Deffill 0,0,0
  65.     Endif
  66.     Color 1
  67.     '
  68.     If Round
  69.       If Seethru
  70.         Rbox (X_text-Hborder)-1,(Y_text+Offset-Hieght-Vborder)-1,(X_text+Len(Characters$)*Width+Hborder)+1,(Y_text+Offset+Vborder)+1
  71.       Else
  72.         Prbox (X_text-Hborder)-1,(Y_text+Offset-Hieght-Vborder)-1,(X_text+Len(Characters$)*Width+Hborder)+1,(Y_text+Offset+Vborder)+1
  73.       Endif
  74.     Else
  75.       If Seethru
  76.         Box (X_text-Hborder)-1,(Y_text+Offset-Hieght-Vborder)-1,(X_text+Len(Characters$)*Width+Hborder)+1,(Y_text+Offset+Vborder)+1
  77.       Else
  78.         Pbox (X_text-Hborder)-1,(Y_text+Offset-Hieght-Vborder)-1,(X_text+Len(Characters$)*Width+Hborder)+1,(Y_text+Offset+Vborder)+1
  79.       Endif
  80.     Endif
  81.     '
  82.     For Fatness=1 To Thick
  83.       '
  84.       If Round
  85.         Rbox (X_text-Hborder)-Fatness,(Y_text+Offset-Hieght-Vborder)-Fatness,(X_text+Len(Characters$)*Width+Hborder)+Fatness,(Y_text+Offset+Vborder)+Fatness
  86.       Else
  87.         Box (X_text-Hborder)-Fatness,(Y_text+Offset-Hieght-Vborder)-Fatness,(X_text+Len(Characters$)*Width+Hborder)+Fatness,(Y_text+Offset+Vborder)+Fatness
  88.       Endif
  89.       '
  90.     Next Fatness
  91.     '
  92.   Endif
  93.   '
  94.   If Seethru
  95.     Graphmode 2
  96.     Text X_text,Y_text,Characters$
  97.     If Inverse
  98.       Get Xhot_upper,Yhot_upper,Xhot_lower,Yhot_lower,Temp$
  99.       Put Xhot_upper,Yhot_upper,Temp$,12
  100.     Endif
  101.     Goto Buttonend1
  102.   Endif
  103.   '
  104.   If Inverse And Thick>0
  105.     Graphmode 3
  106.   Else
  107.     If Inverse And Thick<=0
  108.       Graphmode 4
  109.     Else
  110.       If Not (Inverse)
  111.         Graphmode 2
  112.       Endif
  113.     Endif
  114.   Endif
  115.   Text X_text,Y_text,Characters$
  116.   Buttonend1:
  117.   Graphmode 1
  118. Return
  119.